home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
FM Towns: Free Software Collection 4
/
FM Towns Free Software Collection 4 - Disc 1.iso
/
oh_towns
/
bascheck
/
bascheck.bas
next >
Wrap
BASIC Source File
|
1991-10-18
|
3KB
|
73 lines
10000 ' TownsFOS 対応
10010 ' BASIC版BASICチェックサム
10020 ' Programed By Hiroki morimura
10030 DIM TSUM(10):DEFINT A-Z
10040 DEF FNHE2$(X)=RIGHT$("0"+HEX$(X),2)
10050 COLOR 4:PRINT " Basic sentence checker. "
10060 PRINT :PRINT :COLOR 7
10070 '\ プログラム ニュウリョク ヨウ ファイル オープン
10080 IF ARGC%>1 THEN FILN$=ARGV$(1):GOTO 10100
10090 LINE INPUT "ASCII-saved file descriptor ? ";FILN$
10100 OPEN "I",#1,FILN$
10110 '\ シュツリョク ヨウ ファイル オープン
10120 PRINT:PRINT "1: Display 2:Printer Please choose. ";
10130 R$=INPUT$(1):PRINT R$
10140 IF R$="2" THEN PRT$="LPT0:" ELSE IF R$="1" THEN PRT$="SCRN:" ELSE 10130
10150 OPEN "O",#6,PRT$
10160 '
10170 X=0:Y=0:ENF=0
10180 '\ メイン ループ
10190 IF NOT(EOF(1)) THEN LINE INPUT #1, M$ ELSE M$="":SUM=0:GOTO 10300
10200 IF M$="" THEN 10190
10210 '\ キョウ バンゴウ スキップ
10220 LN=INSTR(M$," ")
10230 LIN=VAL(LEFT$(M$,LN))
10240 PRG$=RIGHT$(M$,LEN(M$)-LN)
10250 '\ ミダシ ノ ヒョウジ
10260 IF X=0 AND Y=0 THEN PRINT #6:PRINT #6," LINE +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 SUM"
10270 IF X=0 THEN PRINT #6,USING "#####";LIN;
10280 '
10290 GOSUB 10530
10300 PRINT #6," ";FNHE2$(SUM);
10310 YSUM = (YSUM+SUM) MOD 256
10320 TSUM(X)= (TSUM(X)+SUM) MOD 256
10330 '
10340 IF X<9 THEN X=X+1:GOTO 10480
10350 '( ヨコ イチレツ オワッタ )
10360 PRINT #6," :";FNHE2$(YSUM):YSUM=0:X=0
10370 IF Y<9 AND NOT(EOF(1)) THEN Y=Y+1:GOTO 10480
10380 '( 1ブロック オワッタ )
10390 PRINT #6,STRING$(41,"-"):PRINT #6," ";
10400 FOR X1=0 TO 9
10410 PRINT #6," ";FNHE2$(TSUM(X1));
10420 YSUM=YSUM+TSUM(X1)
10430 TSUM(X1)=0
10440 NEXT
10450 PRINT #6," /";FNHE2$(YSUM):YSUM=0:Y=0
10460 IF EOF(1) THEN 10500
10470 '
10480 GOTO 10180
10490 '
10500 CLOSE #6:CLOSE #1
10510 IF ARGC%>0 THEN RETURN ELSE END
10520 '\ 1ギョウ ノ SUM ヲ ケイサン スル
10530 SUM=0:CORT=0:FRT=0:I=1
10540 LNP=LEN(PRG$)
10550 WHILE I<=LNP
10560 L1$=MID$(PRG$,I,1)
10570 IF CORT=1 THEN 10660
10580 '( IF CORT=0 : "" ノ ソト )
10590 IF L1$=":" THEN FRT=0
10600 IF L1$=CHR$(&H22) THEN CORT=1:GOTO 10690
10610 IF L1$=" " THEN 10690
10620 IF L1$="'" THEN 10710
10630 IF FRT=1 THEN 10680
10640 IF MID$(PRG$,I,3)="REM" THEN 10710 ELSE FRT=1:GOTO 10680
10650 '( IF CORT=1 : "" ノ ナカ )
10660 IF L1$=CHR$(&H22) THEN CORT=0:GOTO 10690
10670 '
10680 SUM=SUM+ASC(L1$)
10690 I=I+1
10700 WEND
10710 RETURN